
import Step from "@/common/model/Step"

/******************** 定义类 ***************************************************************/
/*
    平台服务类
 */
function PlateformService() {
    this.number = "";
    this.title = ""; // 标题
    this.id = null;
    this.content = "";  //服务内容
    this.process = new Step();//服务流程
    this.create_time = ""; // 创建时间
    this.formated_create_time="";//格式化时间
    this.appendix = []; // 附件
    this.appendix_ids=[];
    this.status=null;//状态
}

// 将对象序列化为一个json对象，可以用于http请求或对象复制
PlateformService.prototype.serialize = function() {
    return Object.assign({}, this, {
        appendix_ids: this.appendix.map(function(elem){return elem.id}).join(","),
        process: JSON.stringify(this.process)
    });
}
// 用json数据为对象属性赋值
PlateformService.prototype.parse = function(data) {
    Object.assign(this, data, {
        appendix_ids: (data.appendix_ids || "").split(","),
        formated_create_time: new Date(parseInt(data.create_time)).toLocaleDateString()+" "+new Date(parseInt(data.create_time)).getHours()+":"+new Date(parseInt(data.create_time)).getMinutes(),
        process: data.process ? JSON.parse(data.process) : new Step()
    });
}

// 暂时将属性存起来，做一次备份
PlateformService.prototype.storageValue = function() {
    this.storage = this.serialize();
}

// 用备份的数据覆盖现有数据
PlateformService.prototype.applyStorageValue = function() {
    if(this.storage) {
        this.parse(this.storage);
    }
}

// ******************** 类静态属性与方法 **********************************************
// 解析json数据，返回一个对象
PlateformService.parse = function(data) {
    var o = new PlateformService();
    o.parse(data);
    return o;
}

// 解析json数组，返回对象数组
PlateformService.parseList = function(list) {
    var len = list.length;
    var arr = new Array(len);
    for(var i = 0; i < len; i++) {
        arr[i] = PlateformService.parse(list[i]);
    }
    return arr;
}

// ******************** 数据库存储方法 **********************************************
// Investment.prototype.save = function(callback) {
//     var that = this;
//     var action = this.mode == "add" ? "article_add" : "article_modify";
//     api.post(action, this.serialize(), function(res) {
//         that.id = res.id;
//         if(callback) callback();
//     });
// }



// ******************** 导出 **********************************************
export default PlateformService